/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2025-04-24
 * Time: 23:44
 */
public class TestMyLinkedList {
    public static void main(String[] args) {
        MyLinkedList list = new MyLinkedList();

        // 测试头插法和尾插法
        list.addFirst(1);       // 链表: 1
        list.addFirst(2);       // 链表: 2 -> 1
        list.addLast(3);        // 链表: 2 -> 1 -> 3
        list.display();         // 输出: 2 1 3

        // 测试任意位置插入
        list.addIndex(1, 4);   // 在索引1插入4，链表: 2 -> 4 -> 1 -> 3
        list.addIndex(0, 5);    // 在头部插入5，链表: 5 -> 2 -> 4 -> 1 -> 3
        list.addIndex(5, 6);    // 在尾部插入6，链表: 5 -> 2 -> 4 -> 1 -> 3 -> 6
        list.display();         // 输出: 5 2 4 1 3 6

        // 测试contains和size
        System.out.println("包含4? " + list.contains(4)); // true
        System.out.println("大小: " + list.size());      // 6

        // 测试删除第一次出现的元素
        list.remove(5);        // 删除头节点5，链表: 2 -> 4 -> 1 -> 3 -> 6
        list.remove(3);        // 删除中间节点3，链表: 2 -> 4 -> 1 -> 6
        list.remove(6);        // 删除尾节点6，链表: 2 -> 4 -> 1
        list.display();       // 输出: 2 4 1

        // 测试删除所有匹配的元素
        list.addLast(4);       // 链表: 2 -> 4 -> 1 -> 4
        list.removeAllKey(4);  // 删除所有4，链表: 2 -> 1
        list.display();        // 输出: 2 1

        // 测试清空链表
        list.clear();
        System.out.println("清空后大小: " + list.size()); // 0
        list.display();         // 无输出
    }
}